SRC_PATH = src
BUILD_PATH = bin
VPATH = ../src 
LIB =  -lm -lpthread
CC = /usr/bin/gcc
#FLAG =  -DRELAXED_HOLD
#FLAG = -pg -g

all: heapCon heapSeq heap heapRR heapPF heapRRPF heapBLOCK heapBLOCKPF

heapCon: $(SRC_PATH)/think.h $(SRC_PATH)/timer.h $(SRC_PATH)/exp_inc.h
	$(CC) -Wall $(SRC_PATH)/conheap.c -o $(BUILD_PATH)/$@ $(FLAG) $(LIB) 

conheap.o: 
	$(CC) -c -Wall $(SRC_PATH)/conheap.c -o $(BUILD_PATH)/$@ $(FLAG) 

heapSeq: $(SRC_PATH)/seqheap.c $(SRC_PATH)/think.h $(SRC_PATH)/timer.h $(SRC_PATH)/pardef.h $(SRC_PATH)/exp_inc.h 
	$(CC) -Wall $(SRC_PATH)/seqheap.c -o $(BUILD_PATH)/$@ $(FLAG) $(LIB)

heap: $(SRC_PATH)/main.c $(SRC_PATH)/parheap.c $(SRC_PATH)/parcreate.c $(SRC_PATH)/util.c $(SRC_PATH)/pardef.h $(SRC_PATH)/timer.h $(SRC_PATH)/think.h $(SRC_PATH)/exp_inc.h    
	$(CC) $(SRC_PATH)/main.c $(SRC_PATH)/parheap.c $(SRC_PATH)/parcreate.c $(SRC_PATH)/util.c -Wall -o $(BUILD_PATH)/$@ $(FLAG) $(LIB)

heapRR: $(SRC_PATH)/main.c $(SRC_PATH)/parheap.c $(SRC_PATH)/parcreate.c $(SRC_PATH)/util.c $(SRC_PATH)/pardef.h $(SRC_PATH)/timer.h $(SRC_PATH)/think.h $(SRC_PATH)/exp_inc.h    
	$(CC) $(SRC_PATH)/main.c $(SRC_PATH)/parheap.c $(SRC_PATH)/parcreate.c $(SRC_PATH)/util.c -Wall -o $(BUILD_PATH)/$@ $(FLAG) $(LIB) -DROUNDROBIN

heapBLOCK: $(SRC_PATH)/main.c $(SRC_PATH)/parheap.c $(SRC_PATH)/parcreate.c $(SRC_PATH)/util.c $(SRC_PATH)/pardef.h $(SRC_PATH)/timer.h $(SRC_PATH)/think.h $(SRC_PATH)/exp_inc.h    
	$(CC) $(SRC_PATH)/main.c $(SRC_PATH)/parheap.c $(SRC_PATH)/parcreate.c $(SRC_PATH)/util.c -Wall -o $(BUILD_PATH)/$@ $(FLAG) $(LIB) -DBLOCKING

heapBLOCKPF: $(SRC_PATH)/main.c $(SRC_PATH)/parheap.c $(SRC_PATH)/parcreate.c $(SRC_PATH)/util.c $(SRC_PATH)/pardef.h $(SRC_PATH)/timer.h $(SRC_PATH)/think.h $(SRC_PATH)/exp_inc.h    
	$(CC) $(SRC_PATH)/main.c $(SRC_PATH)/parheap.c $(SRC_PATH)/parcreate.c $(SRC_PATH)/util.c -Wall -o $(BUILD_PATH)/$@ $(FLAG) $(LIB) -DBLOCKING -DPF

heapRRPF: $(SRC_PATH)/main.c $(SRC_PATH)/parheap.c $(SRC_PATH)/parcreate.c $(SRC_PATH)/util.c $(SRC_PATH)/pardef.h $(SRC_PATH)/timer.h $(SRC_PATH)/think.h $(SRC_PATH)/exp_inc.h    
	$(CC) $(SRC_PATH)/main.c $(SRC_PATH)/parheap.c $(SRC_PATH)/parcreate.c $(SRC_PATH)/util.c -Wall -o $(BUILD_PATH)/$@ $(FLAG) $(LIB) -DROUNDROBIN -DPF

heapPF: $(SRC_PATH)/main.c $(SRC_PATH)/parheap.c $(SRC_PATH)/parcreate.c $(SRC_PATH)/util.c $(SRC_PATH)/pardef.h $(SRC_PATH)/timer.h $(SRC_PATH)/think.h $(SRC_PATH)/exp_inc.h    
	$(CC) $(SRC_PATH)/main.c $(SRC_PATH)/parheap.c $(SRC_PATH)/parcreate.c $(SRC_PATH)/util.c -Wall -o $(BUILD_PATH)/$@ $(FLAG) $(LIB) -DPF

	
clean:	
	rm $(BUILD_PATH)/* 
